package com.scgk.sync.job;

import cn.hutool.core.date.DateUtil;
import com.scgk.sync.common.ErrorType;
import com.scgk.sync.common.constant.YDTXTConstants;
import com.scgk.sync.common.exception.BusinessException;
import com.scgk.sync.service.IScgkCgRkldYdXzqczrkService;
import com.scgk.sync.service.IScgkCgRkldYdXzqdqrkService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

/**
 * @author wusong
 * @version 1.0
 * @Description:
 * @create 2024-01-20 12:22
 */
@Component
@EnableScheduling
@Slf4j
public class GetYdDataJob {

    @Autowired
    private IScgkCgRkldYdXzqdqrkService ydXzqdqrkService;

    @Autowired
    private IScgkCgRkldYdXzqczrkService ydXzqczrkService;

    /**
     *  文件名称(包含后缀名)：dwa_ovm_ep_city_12res_hm_2024012412.txt
     * 文件名称(包含后缀名)：dwa_ovm_ep_grid_12res_hm_2024012412.txt
     * @throws Exception
     */

    /**
     * 行政区当前人口
     *  每隔一小时 同步上一个小时的文件数据
     *  0 30 * * * ?    每小时一次，每次在该小时的30分开始执行
     */
    //@Scheduled(cron = "0 30 * * * ?")
    @Scheduled(fixedRate = 10000)
    public void getYdXzqdqrk() {
        //// 当天日期 20240121
        //String yyyyMMdd = DateUtil.format(DateUtil.parse(DateUtil.date().toString()), "yyyyMMdd");
        //// 当前小时的前一个小时时间 15
        //String hh = DateUtil.format(DateUtil.offsetHour(DateUtil.parse(DateUtil.date().toString()), -1), "HH");
        String yyyyMMdd = "20240124";
        String hh = "12";
        // 拼装 当前时间的上一个小时文件数据  2024011112
        String synTime = yyyyMMdd + hh;

        // 要读取文件的目录--当天时间
        String FolderName = "20240124";
        //当前时间的上一个小时生成的 {行政区当前人口} 文件名
        String fileName = YDTXTConstants.DWA_OVM_EP_CITY_12RES_HM_ + synTime;

        log.info("---------获取sftp服务器 {} 文件数据------------同步开始-------------------------", fileName);

        List<String> fileList;
        try {
            // 获取 FolderName {当天时间} 目录下 的 fileName {行政区当前人口 dwa_ovm_ep_city_12res_hm_} 文件
            fileList = ydXzqdqrkService.getYdDataByFileName(fileName, FolderName);
            log.info("本次读取SFTP的 {} 文件数据总条数: {}", fileName, fileList.size());
        } catch (Exception e) {
            throw new BusinessException(ErrorType.GET_FILE_FALSE);
        }

        ydXzqdqrkService.addXzqczrk(fileList);

        log.info("---------获取sftp服务器文件数据-------------同步结束-------------------------");
    }





    ///**
    // * 行政区常驻人口    月粒度
    // *
    // * 每隔10分钟同步一次 同步的时候，判断是否已经同步
    // */
    ////@Scheduled(cron = "0 1/10 * * * ? ")
    //@Scheduled(fixedRate = 10000)
    //public void getYdXzqczrk() {
    //    // 当天日期 20240121
    //    String yyyyMMdd = DateUtil.format(DateUtil.parse(DateUtil.date().toString()), "yyyyMMdd");
    //
    //    // 当月日期 202401
    //    String yyyyMM = DateUtil.format(DateUtil.parse(DateUtil.date().toString()), "yyyyMM");
    //
    //    String synTime = "202312";
    //
    //    // 要读取文件的目录--当天时间
    //    String FolderName = "20240111";
    //    // 每月的 {行政区常驻人口 dwa_ovm_ep_city_res_mon_} 文件
    //    String fileName = YDTXTConstants.DWA_OVM_EP_CITY_RES_MON_ + synTime;
    //
    //    log.info("---------获取sftp服务器 {} 文件数据------------同步开始-------------------------", fileName);
    //
    //    List<String> fileList;
    //    try {
    //        // 获取 FolderName {当天时间} 目录下 的 fileName {行政区常驻人口 dwa_ovm_ep_city_res_mon_} 文件
    //        fileList = ydXzqczrkService.getYdDataByFileName(fileName, FolderName);
    //        log.info("本次读取SFTP的 {} 文件数据总条数: {}", fileName, fileList.size());
    //    } catch (Exception e) {
    //        throw new BusinessException(ErrorType.GET_FILE_FALSE);
    //    }
    //
    //    ydXzqczrkService.addXzqczrk(fileList);
    //
    //    log.info("---------获取sftp服务器文件数据-------------同步结束-------------------------");
    //}
    //





}
